/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package runebound.ui;

import java.awt.Color;
import runebound.modelo.TipoAmenaza;
import runebound.ui.mapa.Terreno;

/**
 *
 * @author Miguel (alakat@gmail.com)
 */
public class RBPalentaColores {

    private static final RBPalentaColores instance = new RBPalentaColores();
    private final Color colorLlanura = new Color(60, 179, 113);
    private final Color colorPantano = Color.cyan;
    private final Color colorColina = new Color(218, 165, 32);
    private final Color colorBosque = new Color(34, 142, 35);
    private final Color colorMontanya = Color.black;
    private final Color colorRio = Color.blue;
    private final Color colorCamino = Color.ORANGE;
    private final Color colorCiudad = Color.gray;
    private final Color colorSol  = new Color(255, 215, 0);
    private final Color colorHeores  = Color.BLACK;

    
    private final Color colorDadoVisualizado = Color.yellow;
    private final Color colorDadoUsado = Color.gray;
    
    public static RBPalentaColores getInstance() {
        return instance;
    }

    /**
     * Color en función del terreno
     *
     * @param terreno
     * @return
     */
    public Color getColorByTerreno(Terreno terreno) {
        switch (terreno) {
            case BOSQUE:
                return colorBosque;
            case PANTANO:
                return colorPantano;
            case LLANURA:
                return colorLlanura;
            case COLINA:
                return colorColina;
            case MONTANYA:
                return colorMontanya;
            case RIO:
                return colorRio;
            case CAMINO:
                return colorCamino;
            case CIUDAD:
                return colorCiudad;

        }
        //no debería verse nunca
        return Color.PINK;
    }

    public Color getColorByTipoAmenaza(TipoAmenaza tipoGema) {
        switch (tipoGema) {
            case VERDE:
                return Color.GREEN;

            case AMARILLO:
                return Color.YELLOW;

            case ROJO:
                return Color.RED;

            case AZUL:
                return Color.BLUE;

        }
        return Color.WHITE;
    }

    public Color getColorSol() {

        return this.colorSol;
    }

    public Color getColorTileHeroeActivo() {
        return new Color(1f, 1f, .97f, .55f);
    }

    public Color getColorTileAccesible() {
        return new Color(0f, 1f, 0f, .55f);
    }

    public Color getColorHeroes() {
        return colorHeores;
    }

    public Color getDadoVisualizadoColor() {
        return this.colorDadoVisualizado;
    }

    public Color getDadoUsadoColor() {
        return this.colorDadoUsado;
    }
}
